package com.ruoyi.system.domain;

import com.ruoyi.common.utils.StringUtils;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 验证器类 NotNumberValidator，用于实现 @NotNumber 注解的验证逻辑。
 *
 * @author [你的名字]
 * @version 1.0
 */
public class NotNumberValidator implements ConstraintValidator<NotNumber, String> {

    /**
     * 定义正则表达式模式，用于匹配数字。
     */
    private final String PATTERN = "^[0-9]*$";

    @Override
    public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) {
        // 如果值为空或为空字符串，返回 false
        if (StringUtils.isBlank(value)) {
            return false;
        }
        // 调用 containsHtml 方法检查字符串是否包含数字
        return !containsHtml(value);
    }

    /**
     * 检查字符串是否包含数字。
     *
     * @param value 需要检查的字符串
     * @return 如果字符串包含数字，返回 true；否则返回 false
     */
    public boolean containsHtml(String value) {
        // 创建正则表达式模式对象
        Pattern pattern = Pattern.compile(PATTERN);
        // 创建匹配器对象
        Matcher matcher = pattern.matcher(value);
        // 返回匹配结果
        return matcher.matches();
    }
}